package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.system.entity.BtyBxd;
import cn.stylefeng.guns.sys.modular.system.entity.BtyBxda;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyBxdParam;
import cn.stylefeng.guns.sys.modular.system.model.params.ProjectParam;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyBxdaResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 报销档案表 Mapper 接口
 * </p>
 * @author liuy
 * @since
 */
public interface BtyBxdMapper extends BaseMapper<BtyBxd> {

    /**
     * 获取报销单列表
     */
    Page<Map<String, Object>> list(@Param("page") Page page, @Param("condition") String condition, @Param("status") String status, @Param("flag") String flag, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("kj") String kj, @Param("btyBrandId") String btyBrandId, @Param("dm") String dm, @Param("xm") String xm, @Param("ddName") String ddName, @Param("otherName") String otherName);
    /**
     * 获取报销单导出excel列表(不分页)
     */
    List<Map<String, Object>> listExport(@Param("condition") String condition, @Param("status") String status, @Param("flag") String flag, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("kj") String kj, @Param("btyBrandId") String btyBrandId, @Param("dm") String dm, @Param("xm") String xm, @Param("ddName") String ddName, @Param("otherName") String otherName);
    List<BtyBxda> bxrList(@Param("kj") String kj, @Param("dm") String dm);
    List<BtyBxda> bxrLists(@Param("kj") String kj, @Param("dm") String dm);
    List<BtyBxda> kjList(@Param("kj") String kj);
    List<BtyBxd> dmList(@Param("kj") String kj, @Param("ddName") String ddName);


    List<BtyBxd> sumZcje(@Param("openid") String openid, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
    List<BtyBxd> sumWbxje(@Param("openid") String openid, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
    List<BtyBxd> sumJe(@Param("openid") String openid, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
    BtyBxd info(@Param("id") String id);
    String yaoMa(@Param("dm") String dm);

    Page<Map<String, Object>> listKY(@Param("page") Page page, @Param("pro") String pro, @Param("createUser") Long createUser,
                                     @Param("yyjl") String yyjl, @Param("dd") String dd,@Param("kyFlag") String kyFlag,@Param("kyDate") String kyDate,
                                     @Param("year")String year,
                                     @Param("month")String month,
                                     @Param("day")String day);
    Page<Map<String, Object>> listZJ(@Param("page") Page page, @Param("projectParam") ProjectParam projectParam);

    int batchAdd(@Param("list") List<BtyBxd> list);

    Set<String> listBornval();

    Page<Map<String, Object>> listZc(@Param("page") Page page, @Param("bxdParam") BtyBxdParam bxdParam);

    List<Map<String, Object>> listZcExport(@Param("page") Page page, @Param("bxdParam") BtyBxdParam bxdParam);

    List<BtyBxd> zcDmList(@Param("kj") String kj);

    List<BtyBxdaResult>zyList();

    /**
     *
     * 获取报销单详情
     * @param id
     * @return
     */
    List<Map> bxdById(@Param("id") String id);

    Page<Map<String, Object>> bxdList(@Param("page") Page page, @Param("status") String status, @Param("flag") String flag,
                                      @Param("beginTime") String beginTime, @Param("endTime") String endTime,
                                      @Param("dm") String dm, @Param("xm") String xm, @Param("list") List<String> roleList);


    List<BtyBxda> getBxr(@Param("xm") String xm, @Param("list") List<String> roleList, @Param("dm") String dm);

    List<BtyBxd> getDm(@Param("dm") String dm, @Param("list") List<String> roleList);

    BigDecimal bxdSum(@Param("status") String status, @Param("flag") String flag,
                      @Param("beginTime") String beginTime, @Param("endTime") String endTime,
                      @Param("dm") String dm, @Param("xm") String xm, @Param("list") List<String> roleList);

}
